//	--------------------------------------------------------------------
//	Copyright(C) 2006,2007 Zhao Yukun. All rights reserved.
//	This file is a part of the Xeres system.
//	Xeres 2007
//	Contact : xeres.engine@gmail.com
//	$(reservedInfo)
//	$(reservedDeclaration)
//	--------------------------------------------------------------------
///	@file	<sysinfo.h>
///	@path	~/src/lib/system/
///	@date	2007/06/24
///	@desc	system info.

#pragma once

#include "xeres.h"

#include <vector>

namespace xeres {

	// System Information
#define IS_OS_VISTA()		( get_system_version() >= 6000 )

	/// \brief Get system version.
	uint32 get_system_version( void );

	/// \brief Get application directory.
	const wchar_t * get_app_dir( void );

	/// \brief Get current directory.
	const wchar_t * get_cur_dir( void );

	/// \brief Get application name.
	const wchar_t * get_app_name( void );

	/// \brief Get physical memory size.
	uint64 get_total_physical_memory_size( void );

	/// \brief Get available memory size.
	uint64 get_avail_physical_memory_size( void );

	/// \brief Get virtual memory size.
	uint64 get_virtual_memory_size( void );

	/// \brief Get host-name.
	const char * get_host_name( void );

	/// \brief Get number of core.
	int get_number_of_core( void );

	/// \brief Get available core.
	int get_available_core( std::vector<bool>& tags );

} // namespace xeres
